package fr.fitec.qcmPlus.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import fr.fitec.qcmPlus.beans.Utilisateur;
import fr.fitec.qcmPlus.constants.MappingConstant;
import fr.fitec.qcmPlus.constants.QcmConstants;
import fr.fitec.qcmPlus.constants.SessionVarConstant;
import fr.fitec.qcmPlus.dao.UtilisateurDAO;

/**
 * Cette action vérifie si un utilisateur est connecté.
 * Si oui elle le dirige vers sa page d'accueil.
 * Sinon elle le renvoie vers la page d'authentification.
 */
public class WelcomeAction extends Action
{

	@Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception
    {
		Object userId = request.getSession().getAttribute(SessionVarConstant.ID_UTILISATEUR);
    	
    	if(userId!=null){
    		int idUtilisateur = (Integer) userId;
    		
    		UtilisateurDAO uDao = new UtilisateurDAO();
    		Utilisateur u = uDao.findById(idUtilisateur);
    		
    		if(u.getRole().equals(QcmConstants.ROLE_ADMIN))
    			return mapping.findForward(MappingConstant.HOMEADMIN);
    		else if(u.getRole().equals(QcmConstants.ROLE_STAGIAIRE))
    			return mapping.findForward(MappingConstant.HOMESTAGIAIRE);
    	}
    	return mapping.findForward(MappingConstant.AUTHENTIFICATION);
    }
    
}
